package com.JUC;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class JUC12_FunctionalInterface {
    public static void main(String[] args) {
        // Function（函数）
        // <> 中第一个是输入的数据类型，第二个是返回值类型
//        Function<String,Integer> function = (s) -> {return 1024;};
//        System.out.println(function.apply("ABC"));

        // Predicate（判断）
        // <> 中第一个是输入的数据类型，不需要给返回值类型，因为必须返回 boolean
//        Predicate<String> predicate = (s) -> {return s.equals("abc");};
//        System.out.println(predicate.test("abc"));

        // Consumer（消费）
        // <> 中第一个是输入的数据类型，没有返回
//        Consumer<String> consumer = (s) -> {System.out.println(s);};
//        consumer.accept("abc");

        // Supplier（提供）
        // <> 中第一个是返回值类型，没有参数
        Supplier<String> supplier = () -> {return "ABC";};
        System.out.println(supplier.get());
    }
}
